package com.jm.offer.easy;

/**
 * @Description https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/
 * @date 2022/4/6 7:58
 */
public class _10斐波那契数列 {
    public static void main(String[] args) {
        fib(1);
    }

    /**
     * 斐波那契数列的核心就是 n3 = n1 + n2，即当前项等于前两项的和。
     * @param n
     * @return
     */
    public static int fib(int n) {
        int a = 0, b = 1, sum;
        // 循环 n 次
        // sum 作为 a 与 b 的 和 又是 下一项；
        // a 作为第一项；
        // b 第二项
        for(int i = 0; i < n; i++){
            // 如果 a + b 不超过 1000000007 取模运算就不会改变值
            // 计算出新的项；
            sum = (a + b) % 1000000007;
            // 第一项变为第二项，类推
            a = b;
            // 第二项变为第三项，类推
            b = sum;
        }
        return a;
    }
}
